﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication6
{
    public partial class About : System.Web.UI.Page
    {
        DataClasses1DataContext dc = new DataClasses1DataContext();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                int n = 0;
                DropDownList1.Items.Clear();
                DropDownList2.Items.Clear();
                DropDownList3.Items.Clear();
                DropDownList4.Items.Clear();
                var x = from p in dc.kategories select p;
                foreach (var p in x)
                {
                    DropDownList1.Items.Add(p.nazwa);
                    DropDownList2.Items.Add(p.nazwa);
                    DropDownList3.Items.Add(p.nazwa);
                    if (n == 0) { TextBox7.Text = p.nazwa; n++; }
                }

            }
        }
        private void MessageBox(string msg)
        {
            Label lbl = new Label();
            lbl.Text = "<script language='javascript'>" + Environment.NewLine + "window.alert('" + msg + "')</script>";
            Page.Controls.Add(lbl);
        }

        string TylkoPpierwszaDuza(string t)
        {
            string text = (t.Trim().ToLower());
            string pierwsza = text[0].ToString().ToUpper();

            text = text.Substring(1, text.Length - 1);
            text = pierwsza + text;
            return text;
        }

 
        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                string text = TylkoPpierwszaDuza(TextBox1.Text);

                var kategoria = from p in dc.kategories where p.nazwa == text select p.nazwa;
                bool pytanie = false;
                foreach (var p in kategoria)
                    if (p == text)
                    {
                        pytanie = true;
                        MessageBox("to juz jest");
                    }
                if (pytanie == false)
                {
                    kategorie x = new kategorie();
                    x.nazwa = text;
                    dc.kategories.InsertOnSubmit(x);
                    dc.SubmitChanges();
                    MessageBox("dodano");

                    DropDownList1.Items.Clear();
                    DropDownList2.Items.Clear();
                    DropDownList3.Items.Clear();
                    DropDownList5.Items.Clear();
                    var z = from p in dc.kategories select p;
                    foreach (var p in z)
                    {
                       DropDownList1.Items.Add(p.nazwa);
                       DropDownList2.Items.Add(p.nazwa);
                       DropDownList3.Items.Add(p.nazwa);
                    }

                }
            }
            catch (Exception ee)
            {
                MessageBox("podaj nazwe kategorii");
            }
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            int kcal;
            decimal c;
            decimal t ;
            decimal b;
            try
            {
                kcal = Convert.ToInt32(TextBox3.Text);
                c = Convert.ToDecimal(TextBox4.Text);
                t = Convert.ToDecimal(TextBox5.Text);
                b = Convert.ToDecimal(TextBox6.Text);
                c = Math.Round(c, 1);
                t = Math.Round(c, 1);
                b = Math.Round(c, 1);
                if ((TextBox2.Text != "") && (DropDownList1.Text != ""))
                {
                    string text = TylkoPpierwszaDuza(TextBox2.Text);

                    //pobranie id_kategorii
                    var Zapytanie_pobranie_id_kategorii = from p in dc.kategories where p.nazwa == DropDownList1.Text select p;
                    int id_kategorii = 0;

                    foreach (var p in Zapytanie_pobranie_id_kategorii)
                        id_kategorii = (int)p.id_kategori;
                    var Prod = from p in dc.produkties where p.nazwa == text && p.id_kategori==id_kategorii select p.nazwa;
                    bool pytanie = false;
                    foreach (var p in Prod)
                        if (p == text)
                        {
                            pytanie = true;
                            MessageBox("to juz jest");
                        }
                    if (pytanie == false)
                    {
                        produkty x = new produkty();
                        x.nazwa = text;
                        x.białka = b;
                        x.kcal = kcal;
                        x.węglowodany = c;
                        x.tłuszcze = t;
                        x.id_kategori = id_kategorii;
                        dc.produkties.InsertOnSubmit(x);
                        dc.SubmitChanges();




                        MessageBox("dodano");
                    }


                    DropDownList4.Items.Clear();
                    DropDownList5.Items.Clear();




                }
                else MessageBox("podaj produkt, i przydziel do kategii");
            }
            catch (Exception z)
            {
                MessageBox("kalorie -liczba całkowita, reszta- do jednego po przecinku");
            }
            
        }

        protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
        {
            TextBox7.Text = DropDownList2.SelectedValue.ToString();
        }

        protected void Button3_Click(object sender, EventArgs e)
        {
            if ((DropDownList2.Text != "") && (TextBox7.Text != ""))
            {
                try
                {
                    string text = TylkoPpierwszaDuza(TextBox7.Text);
                    
                    var kategoria = from p in dc.kategories where p.nazwa == DropDownList2.Text select p.nazwa;
                    bool pytanie = false;
                    foreach (var p in kategoria)
                      if (p == text)
                    {
                        pytanie = true;
                        MessageBox("Podana nazwa już istnieje");
                    }
                    if (pytanie == false)
                    {
                        try
                        {
                            var I = from p in dc.kategories where p.nazwa == DropDownList2.Text select p;
                            foreach (var p in I)
                            {
                                
                                p.nazwa = text;
                            }
                            dc.SubmitChanges();
                            MessageBox("Zmienino");
                            DropDownList1.Items.Clear();
                            DropDownList2.Items.Clear();
                            DropDownList3.Items.Clear();
                            DropDownList5.Items.Clear();
                            var z = from p in dc.kategories select p;
                            foreach (var p in z)
                            {
                                DropDownList1.Items.Add(p.nazwa);
                                DropDownList2.Items.Add(p.nazwa);
                                DropDownList3.Items.Add(p.nazwa);
                                
                            }
                            TextBox7.Text = DropDownList2.Text;
                        }
                        catch (Exception eee)
                        {
                            MessageBox("NIestety niepowodzenie");
                        }

                    }
                }
                catch (Exception ee)
                {
                    MessageBox("NIestety niepowodzenie");
                }
            }
            else MessageBox("Wybierz kategorie i podaj nową nazwę");
        }

        protected void Button4_Click(object sender, EventArgs e)
        {
            //pobranie numer kategorii
            //pobranie id_kategorii
            var Zapytanie_pobranie_id_kategorii = from p in dc.kategories where p.nazwa == DropDownList2.Text select p;
            int id_kategorii = 0;
            foreach (var p in Zapytanie_pobranie_id_kategorii)
                id_kategorii = (int)p.id_kategori;

          

            var dokasacji1 = from p in dc.produkties
                             where p.id_kategori == id_kategorii
                             select p;
            dc.produkties.DeleteAllOnSubmit(dokasacji1);
            dc.SubmitChanges();

            var dokasacji = from p in dc.kategories
                            where p.nazwa == DropDownList2.Text
                            select p;
            dc.kategories.DeleteAllOnSubmit(dokasacji);
            dc.SubmitChanges();
 

            DropDownList1.Items.Clear();
            DropDownList2.Items.Clear();
            DropDownList3.Items.Clear();
            DropDownList4.Items.Clear();
            var z = from p in dc.kategories select p;
            foreach (var p in z)
            {
                DropDownList1.Items.Add(p.nazwa);
                DropDownList2.Items.Add(p.nazwa);
                DropDownList3.Items.Add(p.nazwa);
            }
            TextBox7.Text = DropDownList2.Text;
            MessageBox("Usunięto, wraz z produktami należacych do tej kategorii");
            TextBox8.Text = "";
            TextBox9.Text = "";
            TextBox10.Text = "";
            TextBox11.Text = "";
            TextBox12.Text = "";


            DropDownList4.Items.Clear();
            DropDownList5.Items.Clear();
        }

        protected void DropDownList3_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList4.Items.Clear();


            string nazwa_kategorii = DropDownList3.SelectedValue.ToString();
            //pobranie id_kategorii
            var Zapytanie_pobranie_id_kategorii = from p in dc.kategories where p.nazwa == nazwa_kategorii select p;
            int id_kategorii = 0;

            foreach (var p in Zapytanie_pobranie_id_kategorii)
                id_kategorii = (int)p.id_kategori;

            var z = from p in dc.kategories select p;
            DropDownList5.Items.Clear();
            foreach (var p in z)
            {

                DropDownList5.Items.Add(p.nazwa);
            }
            DropDownList5.Text = DropDownList3.Text;
            int iii = 0;
            var Zapytanie_pobranieProduktow = from p in dc.produkties where p.id_kategori == id_kategorii select p;
            foreach (var p in Zapytanie_pobranieProduktow)
            {
              

                DropDownList4.Items.Add(p.nazwa);
                if(iii==0)
                {
                    TextBox8.Text = p.nazwa;
                    TextBox9.Text = p.kcal.ToString();
                    TextBox10.Text = p.węglowodany.ToString();
                    TextBox11.Text = p.tłuszcze.ToString();
                    TextBox12.Text = p.białka.ToString();
                    
                }
                iii++;
            }
        }

        protected void DropDownList4_SelectedIndexChanged(object sender, EventArgs e)
        {
            string nazwa_kategorii = DropDownList3.Text;
            //pobranie id_kategorii
            var Zapytanie_pobranie_id_kategorii = from p in dc.kategories where p.nazwa == nazwa_kategorii select p;
            int id_kategorii = 0;

            foreach (var p in Zapytanie_pobranie_id_kategorii)
                id_kategorii = (int)p.id_kategori;

            //pobranie id produktu
            string nazwa_produktu = DropDownList4.SelectedValue.ToString();
            //pobranie id_produktu
            var produkty = from p in dc.produkties where (p.nazwa == nazwa_produktu && p.id_kategori == id_kategorii) select p;
            var z = from p in dc.kategories select p;
            DropDownList5.Items.Clear();
            foreach (var p in z)
            {

                DropDownList5.Items.Add(p.nazwa);
            }

            foreach (var p in produkty)
            {
                
                TextBox8.Text = p.nazwa;
                TextBox9.Text = p.kcal.ToString();
                TextBox10.Text = p.węglowodany.ToString();
                TextBox11.Text = p.tłuszcze.ToString();
                TextBox12.Text = p.białka.ToString();
                DropDownList5.Text = DropDownList3.Text;
            }
          
        }

        protected void Button5_Click(object sender, EventArgs e)
        {
            int kcal;
            decimal c;
            decimal t;
            decimal b;
            try
            {
                kcal = Convert.ToInt32(TextBox9.Text);
                c = Convert.ToDecimal(TextBox10.Text);
                t = Convert.ToDecimal(TextBox11.Text);
                b = Convert.ToDecimal(TextBox12.Text);
                c = Math.Round(c, 1);
                t = Math.Round(c, 1);
                b = Math.Round(c, 1);
                if ((TextBox8.Text != "") && (DropDownList3.Text != ""))
                {
                    string text = TylkoPpierwszaDuza(TextBox8.Text);

                    //pobranie id_kategorii
                    var Zapytanie_pobranie_id_kategorii = from p in dc.kategories where p.nazwa == DropDownList5.Text select p;
                    int id_kategorii = 0;

                    foreach (var p in Zapytanie_pobranie_id_kategorii)
                        id_kategorii = (int)p.id_kategori;
                    var Prod = from p in dc.produkties where p.nazwa == text && p.id_kategori == id_kategorii select p.nazwa;
                    bool pytanie = false;
                    foreach (var p in Prod)
                       if(text!=DropDownList4.Text)
                        if (p == text)
                        {
                            pytanie = true;
                            MessageBox("to juz jest");
                        }
                    if (pytanie == false)
                    {
                   


                        var I = from p in dc.produkties where p.nazwa == DropDownList4.Text select p;
                        foreach (var p in I)
                        {

                            p.nazwa = text;
                            p.kcal = kcal;
                            p.tłuszcze = t;
                            p.węglowodany = c;
                            p.białka = b;
                            p.id_kategori = id_kategorii;
                        }
                        dc.SubmitChanges();
                        
                        DropDownList1.Items.Clear();
                        DropDownList2.Items.Clear();
                        var z = from p in dc.kategories select p;
                        foreach (var p in z)
                        {
                            DropDownList1.Items.Add(p.nazwa);
                            DropDownList2.Items.Add(p.nazwa);
                        }




                        MessageBox("zaktualizowano");
                    }
                    var aktualizacja = from p in dc.kategories where p.nazwa == DropDownList3.Text select p;
                    id_kategorii = 0;
                    foreach (var p in Zapytanie_pobranie_id_kategorii)
                        id_kategorii = (int)p.id_kategori;


                   

                    TextBox8.Text = "";
                    TextBox9.Text = "";
                    TextBox10.Text = "";
                    TextBox11.Text = "";
                    TextBox12.Text = "";


                    DropDownList4.Items.Clear();
                    DropDownList5.Items.Clear();
                    

                }
                else MessageBox("podaj produkt, i przydziel do kategii");
            }
            catch (Exception z)
            {
                MessageBox("kalorie -liczba całkowita, reszta- do jednego po przecinku");
            }
        }

        protected void Button6_Click(object sender, EventArgs e)
        {
            //pobranie numer kategorii
            //pobranie produktu
 

            var dokasacji1 = from p in dc.produkties
                             where p.nazwa == DropDownList4.Text
                             select p;
            dc.produkties.DeleteAllOnSubmit(dokasacji1);
            dc.SubmitChanges();


            TextBox8.Text = "";
            TextBox9.Text = "";
            TextBox10.Text = "";
            TextBox11.Text = "";
            TextBox12.Text = "";

       
            DropDownList4.Items.Clear();
            DropDownList5.Items.Clear();

            //pobranie id_kategorii
            var Zapytanie_pobranie_id_kategorii = from p in dc.kategories where p.nazwa == DropDownList3.Text select p;
            int id_kategorii = 0;
            var z = from p in dc.produkties where p.id_kategori==id_kategorii select p;
            foreach (var p in z)
            {
                
                DropDownList4.Items.Add(p.nazwa);
            }
            TextBox7.Text = DropDownList2.Text;
            MessageBox("Usunięto");
        }
    }
}
